package top.szhome.system.service;

import top.szhome.framework.starter.db.support.SimpleService;
import top.szhome.system.convert.UserConverter;
import top.szhome.system.entity.User;
import top.szhome.system.dto.UserDTO;
import top.szhome.system.vo.UserVO;

import java.util.List;


/**
 * 用户 服务定义
 *
 * @author 唐加利
 * @date 2023/07/31
 **/
public interface UserService extends SimpleService<UserConverter, UserDTO, User, UserVO> {

    /**
     * 用户登录
     * @param username
     * @param password
     * @return
     */
    UserVO login(String username, String password);

    /**
     * 修改密码
     * @param userId        用户ID
     * @param oldPassword   原密码
     * @param newPassword   新密码
     */
    void modifyPwd(Long userId, String oldPassword, String newPassword);

    /**
     * 重置ID
     * @param userIds    用户ID
     */
    void resetPwd(List<Long> userIds);

    /**
     * 获取用户已分配的角色信息
     * @param userId
     * @return
     */
    List<Long> getUserRoles(Long userId);

    /**
     * 用户分配角色
     * @param userId
     * @param roleIds
     */
    void grantRoles(Long userId, List<Long> roleIds);
}
